iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
生成式 AI

從零開始,打造一個生成式 AI 平台,打破程式學習的高牆系列 第 10

思維鏈設計 1:讓 AI 分析程式碼的標題、目的

  • 分享至 

  • xImage
  •  

思維鏈設計 1:讓 AI 分析程式碼的標題、目的

https://ithelp.ithome.com.tw/upload/images/20240910/20168979aD4ttdXw9E.png

思維鏈的設計重點就是,如何透過 AI 思維將原始資料轉換為目標資料
我們的終極目標是透過程式碼,生成一份教學文件,忘了可以參見第二章

第二章當中,我們討論出教學文件的資料結構長這樣

interface Tutorial {
    title: string;
    description: string;
    steps: Step[];
}

基本上就是

  1. 標題

  2. 描述

  3. 每個教學步驟

思維練的設計方法

很簡單,親自先做一次,也就是自己親自將撰寫一份程式碼教學文件

然後去審思自己是如何撰寫這份文件的

將你自己撰寫的過程給文字化

好比說

  1. 我會先研究這個程式碼的功能是什麼

  2. 我會先想一下這個教學文件的標題要叫啥

  3. 將程式碼拆解成許多模塊,然後開始研究要先從哪麼模塊開始教學

恭喜你,你已經順便把 LLM 的工作流給設計出來了

接下來讓 LLM 復刻整個工作流程即可,不過為了節省成本、提升效果,我會再做這兩件事情

1. 聚合

由於我們提出來的任務可能過於簡單,好比說

  1. 我會先研究這個程式碼的功能是什麼

  2. 我會先想一下這個教學文件的標題要叫啥

這兩件事其實都很簡單,LLM 其實能夠一次生成完畢,我們便可以將這兩個任務合成為同個任務

Prompt:

你是一個能幫助生成教學文件的 AI。
請針對以下程式碼生成教學文件,並提供一個標題和描述。
並依造以下 json 格式輸出:
```
{
  "title": "教學文件的標題",
  "description": "整個教學文件的功能與說明"
}

這時如果我們輸入一個程式碼

function add(a: number, b: number): number {
  return a + b;
}

很好,直接跑結果

{   
  "title": "數字相加函式教學",   
  "description": "這份教學文件介紹了如何在 TypeScript 中定義一個簡單的加法函數。函數 `add` 接受兩個數字作為參數,並返回它們的和。這個函數展示了 TypeScript 中如何使用靜態類型來確保輸入和輸出的一致性。"
}

2. 疊代

這個生成結果基本符合我們對標題和描述的期望,它包含了 titledescription

不過生成文字上可能太繁瑣,我們可能只需要他大致說明即可,不需要很細部講解整個程式碼

此時我們便可以針對 prompt 進行疊代

你是一個能幫助生成教學文件的 AI。
請針對以下程式碼生成簡潔的教學文件,並提供一個簡明的標題和描述。
請避免對程式碼進行詳細的講解,僅需簡要說明功能。

3. 降複雜度

有時候,我們反覆疊代個四五次仍然無法有效提升生成效果

又或者你發現疊代雖然效果有提升,但是提升效益非常不明顯

此時你必須得意識到該任務難度過高,已經超過 AI 的負擔能力了

這時候你應該將這個任務拆解成兩個或更多的任務

4. 避免過度擬合

什麼是過度擬合?

這是一種機器學習專有術語,表示模型過於專注於訓練資料中的細節或噪音,從而在新資料上的表現變差。這個概念同樣適用於 LLM 的 prompt 設計。

簡單來講就是你的 prompt 太過 focus 在某個細節上,導致模型在其他情境下的表現反而變差。例如,若你的 prompt 過於具體或狹隘,LLM 可能無法靈活應對不同的需求,進而限制了生成結果的通用性。

好比說,正常的 prompt 是這樣

請用簡單的語言解釋一下什麼是機器學習。

過度擬合 prompt:

請詳細解釋機器學習,尤其是監督式學習的數學公式部分,包括所有常見公式的推導過程和步驟,且只能使用 300 字內的範圍來解釋。

它過度強調某個細節(數學公式、字數限制),可能導致模型在其他方面(例如簡明解釋、靈活性)表現不佳。如此設計的 prompt 會讓模型僅適應極少數的情境,無法在更多元的問題上取得理想效果。

5. 同時準備好多個測試資料

不要從頭到尾只用同一個資料做 prompt 的測試,很容易發生我剛剛提到的過度擬合

你可以先用一個資料將 prompt 疊代到八成滿意度,最後再透過多個測試資料完成最後的 80 到 99 的最後一哩路


上一篇
思維鏈的奧秘:構建 AI 的思考過程
下一篇
AI 的開發,從定義成功開始,如何創建有效的測試資料
系列文
從零開始,打造一個生成式 AI 平台,打破程式學習的高牆17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言